質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

1回答

2946閲覧

VisualStudio2022でリソースを追加したが、定義がありませんと出る

TokoTk

総合スコア2

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2023/07/04 13:11

編集2023/07/05 09:52

.NET7を利用して、ソフトウェアを作成しています。
イメージファイルをResources.resxに追加したのですが、
Properties.Resources.から呼び出そうとしたら、定義がありませんとエラーが出ました。
追加したら勝手に定義がされるものだと思っていたのですが、Resourcesを見ると確かに定義がありませんでした。

手動で勝手に定義を追加してもよいのでしょうか?
また、なぜ定義が自動的に行われなかったのでしょうか?

試したこと

1.VisualStudio2022で開発中のC#.NETにて、Resources.resxを開く。
2.デスクトップから対象の画像(pic1)をD&Dで追加する。
3.Form1にあるImageBoxで表示するために以下のコードを追加した。

public Form1() { InitializeComponent(); this.imageBox.Image = Properties.Resources.pic1 }

4.「'Resources'に'pic1'の定義がありません。」と表示される。

以下、csprojファイル

<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0-windows</TargetFramework> <OutputType>WinExe</OutputType> <PublishUrl>publish\</PublishUrl> <Install>true</Install> <InstallFrom>Disk</InstallFrom> <UpdateEnabled>false</UpdateEnabled> <UpdateMode>Foreground</UpdateMode> <UpdateInterval>7</UpdateInterval> <UpdateIntervalUnits>Days</UpdateIntervalUnits> <UpdatePeriodically>false</UpdatePeriodically> <UpdateRequired>false</UpdateRequired> <MapFileExtensions>true</MapFileExtensions> <ApplicationRevision>0</ApplicationRevision> <ApplicationVersion>1.0.0.%2a</ApplicationVersion> <IsWebBootstrapper>false</IsWebBootstrapper> <UseApplicationTrust>false</UseApplicationTrust> <BootstrapperEnabled>true</BootstrapperEnabled> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <UseWindowsForms>true</UseWindowsForms> <ImportWindowsDesktopTargets>true</ImportWindowsDesktopTargets> </PropertyGroup> <PropertyGroup> <TargetZone>LocalIntranet</TargetZone> </PropertyGroup> <PropertyGroup> <GenerateManifests>true</GenerateManifests> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'"> <OutputPath>bin\x64\Debug\ImageRenderApp</OutputPath> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'"> <OutputPath>bin\x64\Release\</OutputPath> </PropertyGroup> <PropertyGroup> <ApplicationManifest>Properties\app.manifest</ApplicationManifest> </PropertyGroup> <PropertyGroup> <ApplicationIcon>Resources\myIcon.ico</ApplicationIcon> </PropertyGroup> <ItemGroup> <BootstrapperPackage Include=".NETFramework,Version=v4.7.2"> <Visible>False</Visible> <ProductName>Microsoft .NET Framework 4.7.2 %28x86 および x64%29</ProductName> <Install>true</Install> </BootstrapperPackage> <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> <Visible>False</Visible> <ProductName>.NET Framework 3.5 SP1</ProductName> <Install>false</Install> </BootstrapperPackage> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.CSharp" Version="4.7.0" /> <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" /> <PackageReference Include="Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers" Version="0.4.421302"> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="Microsoft.Windows.Compatibility" Version="7.0.1" /> </ItemGroup> <ItemGroup> <Compile Update="Properties\Settings.Designer.cs"> <DesignTimeSharedInput>True</DesignTimeSharedInput> <AutoGen>True</AutoGen> <DependentUpon>Settings.settings</DependentUpon> </Compile> </ItemGroup> <ItemGroup> <None Update="Properties\Settings.settings"> <Generator>SettingsSingleFileGenerator</Generator> <LastGenOutput>Settings.Designer.cs</LastGenOutput> </None> </ItemGroup> </Project>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2023/07/04 13:27

追加後にResources.resxを保存しましたか?
TN8001

2023/07/04 15:00

.NET7だとResources.resxやSettings.settingsは、デフォでは作られないと思いますがどう追加しましたか? .csprojも質問に追記いただけますか。
TokoTk

2023/07/05 09:50

<YAmaGNZ様 Resources.resxの保存はもちろんしております <TN8001様 当該アプリは、.NET FrameWork 4.7.0から移行して作成しております。 また、特に後から追加はしておりません。
guest

回答1

0

当該アプリは、.NET FrameWork 4.7.0から移行して作成しております。

それが怪しいですね。

新規で作った.NETプロジェクトにResourcesを追加(プロジェクトのプロパティ リソースタブから追加できます)すると、.csprojに以下が追加されました。

xml

1 <ItemGroup> 2 <Compile Update="Properties\Resources.Designer.cs"> 3 <DesignTime>True</DesignTime> 4 <AutoGen>True</AutoGen> 5 <DependentUpon>Resources.resx</DependentUpon> 6 </Compile> 7 </ItemGroup> 8 9 <ItemGroup> 10 <EmbeddedResource Update="Properties\Resources.resx"> 11 <Generator>ResXFileCodeGenerator</Generator> 12 <LastGenOutput>Resources.Designer.cs</LastGenOutput> 13 </EmbeddedResource> 14 </ItemGroup>

提示コードには該当部分がないようです。

バックアップ等したうえで、上記追加するとどうなりますでしょうか?(私は全くわかってないので、有識者の回答を待ったほうがいいかもしれません^^;

投稿2023/07/05 10:22

TN8001

総合スコア10004

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TokoTk

2023/07/05 12:41

ご回答ありがとうございます。 追加してみて、リビルド等もしてみましたが特に変化はありませんでした・・・
TN8001

2023/07/05 13:10

> 追加してみて、リビルド等もしてみましたが特に変化はありませんでした・・・ そうですか残念です... UpgradeAssistantでアップグレードしたんですかね? [Windows フォーム アプリを .NET 7 にアップグレードする - Windows Forms .NET | Microsoft Learn](https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms/migration/?view=netdesktop-7.0) わたしも1,2回試しただけですが、うまくいかないものもありましたorz サンプルはリソースも使ってますし適用前後がはっきりわかるので、何が違うのかのヒントにはなるかもしれません。 [samples/windowsforms/matching-game at main · dotnet/samples · GitHub](https://github.com/dotnet/samples/tree/main/windowsforms/matching-game) > 追加したら勝手に定義がされるものだと思っていたのですが、Resourcesを見ると確かに定義がありませんでした。 少なくとも.NETでできなくなったわけではありません。新規で作ったものは動いています。 最悪プロジェクトの作り直しも考えてはどうでしょう(そういうサイズ感ではない?^^;
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問