トップ回答者
VB2015 Silverlight ライブラリのReleaseビルドができない

質問
-
お世話になります。
Microsoft Visual Studio Professional 2015
Version 14.0.25431.01 Update 3
Win10 Microsoft .NET Framework 4.7.02053
VisualStudio の認証(サインイン)済この環境で新規のプロジェクトとして
VisualBasic Silverlight 5.0 のクラスライブラリを選択しました。
Class1.vbが用意された空のライブラリが生成されました。
このまま Debugビルドを行うと正常終了となりますが
Releaseに切り替えてビルドを行うと以下のエラーが発生してビルドすることができません。重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー BC30002 型 'Global.Microsoft.VisualBasic.ApplicationServices.ApplicationBase' は定義されていません。
エラー BC30002 型 'Global.Microsoft.VisualBasic.ApplicationServices.User' は定義されていません。
エラー BC30002 型 'Global.Microsoft.VisualBasic.Devices.Computer' は定義されていません。
エラー BC30002 型 'Global.Microsoft.VisualBasic.MyServices.Internal.ContextValue' は定義されていません。
エラー BC30002 型 'Global.System.ComponentModel.Design.HelpKeyword' は定義されていません。なぜReleaseビルドが出来ないのかどうしたらよいのか皆目見当がつかない為、
何か情報がありましたらご教示お願いいたします。※本来は、同じマシンの別Silverlightアプリケーションプロジェクトで作成していて動作確認ができたので
リリースビルドを行ったところ上記エラーが出たため、上記のプロジェクト新規作成で試したところエラー
が出るため質問させていただきました。
回答
-
コンパイルオプションに/nostdlibがついている場合は_MyType="Empty"というカスタム定数が必要らしいのですが、リリースビルドの設定で抜けてるみたいです。
プロジェクトのプロパティ->コンパイル->詳細コンパイルオプション->カスタム定数を
SILVERLIGHT=1, _MYTYPE="Empty"
とする。
あるいは、プロジェクトファイル(*.vbproj)のなかのCoditionがRelease|AnyCPUになっている箇所に、以下のようにMyTypeタグを追加してみてください。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <DefineDebug>false</DefineDebug> <DefineTrace>true</DefineTrace> <NoStdLib>true</NoStdLib> <!-- これを追加 --> <MyType>Empty</MyType> <NoConfig>true</NoConfig> <Optimize>true</Optimize> <OutputPath>Bin\Release</OutputPath> <DocumentationFile>SilverlightClassLibrary2.xml</DocumentationFile> <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn> <DefineConstants>SILVERLIGHT=1</DefineConstants> </PropertyGroup>
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 編集済み gekkaMVP 2017年8月1日 10:09
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年8月2日 0:04
- 回答としてマーク task0 2017年8月2日 1:02
すべての返信
-
コンパイルオプションに/nostdlibがついている場合は_MyType="Empty"というカスタム定数が必要らしいのですが、リリースビルドの設定で抜けてるみたいです。
プロジェクトのプロパティ->コンパイル->詳細コンパイルオプション->カスタム定数を
SILVERLIGHT=1, _MYTYPE="Empty"
とする。
あるいは、プロジェクトファイル(*.vbproj)のなかのCoditionがRelease|AnyCPUになっている箇所に、以下のようにMyTypeタグを追加してみてください。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>pdbonly</DebugType> <DefineDebug>false</DefineDebug> <DefineTrace>true</DefineTrace> <NoStdLib>true</NoStdLib> <!-- これを追加 --> <MyType>Empty</MyType> <NoConfig>true</NoConfig> <Optimize>true</Optimize> <OutputPath>Bin\Release</OutputPath> <DocumentationFile>SilverlightClassLibrary2.xml</DocumentationFile> <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn> <DefineConstants>SILVERLIGHT=1</DefineConstants> </PropertyGroup>
個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)
- 編集済み gekkaMVP 2017年8月1日 10:09
- 回答の候補に設定 立花楓Microsoft employee, Moderator 2017年8月2日 0:04
- 回答としてマーク task0 2017年8月2日 1:02