質問編集履歴

1

2022/01/12 15:21

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,64 +1,69 @@
1
- ### 前提・実現したいこと
2
-
3
- 以前、[こちらの質問](https://teratail.com/questions/217007)で、
4
- Visual Studio CodeのC#の扱いで、dotnet new consoleで作成したプロジェクトで、単体で動作するexeファイルの生成方法を
5
- ご教示いただき解決したのですが、今回は、Visual StudioのC#で単体で動作するexeファイルの生成方法のご教示をお願いいたします。
6
- Windows 10のVisual Studio 2022のIDEで、.NET 6.0の環境で試しています。
7
-
8
- ### 試したこと
9
- ソリューションエクスプローラにおいて、csprojアイコンをダブルクリックして、csprojファイルを開き、
10
- 以下のように、PublishSingleFileタグを追記して、trueに設定しました。
11
-
12
- ```ここに言語名を入力
13
- <Project Sdk="Microsoft.NET.Sdk">
14
-
15
- <PropertyGroup>
16
- <OutputType>WinExe</OutputType>
17
- <TargetFramework>net6.0-windows</TargetFramework>
18
- <Nullable>enable</Nullable>
19
- <UseWindowsForms>True</UseWindowsForms>
20
- <ImplicitUsings>enable</ImplicitUsings>
21
- <AssemblyName>testApp</AssemblyName>
22
- <AssemblyVersion></AssemblyVersion>
23
- <FileVersion></FileVersion>
24
- <ProduceReferenceAssembly>True</ProduceReferenceAssembly>
25
- <PublishSingleFile>true</PublishSingleFile>
26
- </PropertyGroup>
27
- ```
28
- Debugモードではなく、Releaseモードに設定して、ソリューションのビルトやリビルドを実行すると、
29
- exeファイルの他に、deps.json、dll、pdb、runtimeconfig.jsonも同時生成され、この生成されたフォルダの中では、
30
- exeファイルは動作するのですが、このexeファイルをこのフォルダの外に移動させると、起動しなくなってしまいます。
31
- 以前の質問の環境では、PublishSingleFileをtrueに設定することで起動できたはずでしたが、今回は起動しない状態です。
32
- また、以下のようにPublishTrimmedを追記すると、
33
- ```ここに言語名を入力
34
- <Project Sdk="Microsoft.NET.Sdk">
35
-
36
- <PropertyGroup>
37
- <OutputType>WinExe</OutputType>
38
- <TargetFramework>net6.0-windows</TargetFramework>
39
- <Nullable>enable</Nullable>
40
- <UseWindowsForms>True</UseWindowsForms>
41
- <ImplicitUsings>enable</ImplicitUsings>
42
- <AssemblyName>testApp</AssemblyName>
43
- <AssemblyVersion></AssemblyVersion>
44
- <FileVersion></FileVersion>
45
- <ProduceReferenceAssembly>True</ProduceReferenceAssembly>
46
- <PublishSingleFile>true</PublishSingleFile>
47
- <PublishTrimmed>true</PublishTrimmed>
48
- </PropertyGroup>
49
- ```
50
- 以下のようにサポートされていないというエラーメッセージが出力されて、ビルドが失敗します。
51
- ```
52
- NETSDK1175 Windows フォームに関して、トリミングの有効化はサポートおよび推奨されていません。詳細については、https://aka.ms/dotnet-illink/windows-forms を参照してください。 testApp
53
- C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets
54
- ```
55
- 解決方法のご教示をお願い致します。
56
- また、単体で動作するexeファイルの生成については、csprojファイルを直接開いて編集する方法しかありませんか?
57
- IDEのプロジェクトメニューから、設定するメニューがありましたら、そちらのご教示もお願いします
58
- (見た限りではそれらしきメニューがわかりませんでした)。
59
- なお、ILMergeは使わず、標準のVisual Studio 2022のIDEで生成する方法があれば教えていただきたいです。
60
-
61
- ### 補足情報(FW/ツールのバージョンなど)
62
- Windows 10
63
- Visual Studio 2022
1
+ ### 前提・実現したいこと
2
+
3
+ 以前、[こちらの質問](https://teratail.com/questions/217007)で、
4
+ Visual Studio CodeのC#の扱いで、dotnet new consoleで作成したプロジェクトで、単体で動作するexeファイルの生成方法を
5
+ ご教示いただき解決したのですが、今回は、Visual StudioのC#で単体で動作するexeファイルの生成方法のご教示をお願いいたします。
6
+ Windows 10のVisual Studio 2022のIDEで、.NET 6.0の環境で試しています。
7
+
8
+ ### 試したこと
9
+ ソリューションエクスプローラにおいて、csprojアイコンをダブルクリックして、csprojファイルを開き、
10
+ 以下のように、PublishSingleFileタグを追記して、trueに設定しました。
11
+
12
+ ```ここに言語名を入力
13
+ <Project Sdk="Microsoft.NET.Sdk">
14
+
15
+ <PropertyGroup>
16
+ <OutputType>WinExe</OutputType>
17
+ <TargetFramework>net6.0-windows</TargetFramework>
18
+ <Nullable>enable</Nullable>
19
+ <UseWindowsForms>True</UseWindowsForms>
20
+ <ImplicitUsings>enable</ImplicitUsings>
21
+ <AssemblyName>testApp</AssemblyName>
22
+ <AssemblyVersion></AssemblyVersion>
23
+ <FileVersion></FileVersion>
24
+ <ProduceReferenceAssembly>True</ProduceReferenceAssembly>
25
+ <PublishSingleFile>true</PublishSingleFile>
26
+ </PropertyGroup>
27
+ ```
28
+ Debugモードではなく、Releaseモードに設定して、ソリューションのビルトやリビルドを実行すると、
29
+ exeファイルの他に、deps.json、dll、pdb、runtimeconfig.jsonも同時生成され、この生成されたフォルダの中では、
30
+ exeファイルは動作するのですが、このexeファイルをこのフォルダの外に移動させると、起動しなくなってしまいます。
31
+ 以前の質問の環境では、PublishSingleFileをtrueに設定することで起動できたはずでしたが、今回は起動しない状態です。
32
+ また、以下のようにPublishTrimmedを追記すると、
33
+ ```ここに言語名を入力
34
+ <Project Sdk="Microsoft.NET.Sdk">
35
+
36
+ <PropertyGroup>
37
+ <OutputType>WinExe</OutputType>
38
+ <TargetFramework>net6.0-windows</TargetFramework>
39
+ <Nullable>enable</Nullable>
40
+ <UseWindowsForms>True</UseWindowsForms>
41
+ <ImplicitUsings>enable</ImplicitUsings>
42
+ <AssemblyName>testApp</AssemblyName>
43
+ <AssemblyVersion></AssemblyVersion>
44
+ <FileVersion></FileVersion>
45
+ <ProduceReferenceAssembly>True</ProduceReferenceAssembly>
46
+ <PublishSingleFile>true</PublishSingleFile>
47
+ <PublishTrimmed>true</PublishTrimmed>
48
+ </PropertyGroup>
49
+ ```
50
+ 以下のようにサポートされていないというエラーメッセージが出力されて、ビルドが失敗します。
51
+ ```
52
+ NETSDK1175 Windows フォームに関して、トリミングの有効化はサポートおよび推奨されていません。詳細については、https://aka.ms/dotnet-illink/windows-forms を参照してください。 testApp
53
+ C:\Program Files\dotnet\sdk\6.0.101\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.RuntimeIdentifierInference.targets
54
+ ```
55
+ 解決方法のご教示をお願い致します。
56
+ また、単体で動作するexeファイルの生成については、csprojファイルを直接開いて編集する方法しかありませんか?
57
+ IDEのプロジェクトメニューから、設定するメニューがありましたら、そちらのご教示もお願いします
58
+ (見た限りではそれらしきメニューがわかりませんでした)。
59
+ なお、ILMergeは使わず、標準のVisual Studio 2022のIDEで生成する方法があれば教えていただきたいです。
60
+
61
+ ### 追記質問
62
+ ご回答者様にご教示いただき、発行の操作によって、意図通りのことはできるようになりましたので、
63
+ 質問はクローズさせていただいてますが、もし、この処理をビルドの方法でご存知の方がいらっしゃいましたら、
64
+ ご教示いただけたらと思います。
65
+
66
+ ### 補足情報(FW/ツールのバージョンなど)
67
+ Windows 10
68
+ Visual Studio 2022
64
69
  .NET 6.0