問題タブ [shared-project]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xamarin.forms - Xamarin Forms:共有プロジェクトに保存されている画像ファイルのパスを取得しますか?
ByteArrayContent
Web サービスを介して画像ファイルをアップロードしようとしています。すべての画像を共有プロジェクトに追加し、ビルド アクションをEmbedded resource
.
以下は私のコードです:
上記のようにしようとすると、System.IO.FileNotFoundException: Could not find file "/Projectname.Avatars.ic_avatar01_xx.png"
以下のスクリーンショットのように、共有プロジェクトのフォルダー内に直接画像を追加しました。
を変えてみました。以下のように、ファイル パスに / を使用します。
しかし、その場合、私はSystem.IO.DirectoryNotFoundException: Could not find a part of the path "/Avatars/ic_avatar01_xx.png"
共有プロジェクトに保存されている画像ファイルのパスを取得する正しい方法は何ですか?
別のアプローチも試しました:
しかし、上記の場合、以下のエラーが発生します。
shared-project - Visual Studio が共有プロジェクトの wwwroot ファイルをパブリッシュで正常に使用しているが、ビルド/実行では使用していない
背景
私は Visual Studio 2019 で作業しています。いくつかの C# クラス プロジェクトと 1 つの C# 共有プロジェクトを参照する C# Web APP Razor Pages プロジェクトがあります。
問題
Web アプリ プロジェクトをローカルまたはリモートの IIS インスタンスに発行すると、問題なく、共有プロジェクト ファイルがすべて存在し、説明され、期待どおりに動作します。
ただし、ビルド/実行してからブラウザーで表示すると、共有プロジェクトのヘルパーとページは期待どおりですが、共有プロジェクトの wwwroot ファイルはすべて動作していません。
ザ・ウォント
共有プロジェクトにあるものを確認/トラブルシューティングする必要があるたびに、ローカルに公開することはできますが、そうする必要はありません...
共有プロジェクトの wwwroot フォルダー アセットをビルド/実行で使用できるようにする方法を見つけたいと思います。また、現在作業している公開プロセスに悪影響を与えないようにする方法を見つけたいと思います。期待される。
ディーツ
関連するプロジェクトのフォルダー構造の例 (おそらく tmi ですが、あるプロジェクトから別のプロジェクトへのパスで何かをしなければならない場合、これらの相対パスは例を作成するのに十分なほど詳細です) ...
- inetpub
- wwwroot
- MyNameソフトウェア
- wwwroot <-- Web アプリと共有プロジェクトの両方からのすべての wwwroot ファイルは、最終的にPublishでここに配置されます。
- MyNameソフトウェア
- wwwroot
- 自分の名前
- MyName.Common.Domain
- MyName.Common.Domain.csproj ファイル
- クラスを含むさまざまなフォルダーとサブフォルダー
- MyName.Common.Domain.csproj ファイル
- MyName.Common.Presentation.Web
- MyName.Common.Presentation.Web.shproj ファイル
- ヘルパー <-- 正常に動作します
- ページ <-- 正常に動作します
- wwwroot <--- これらのファイルは公開では利用できますが、ビルド/実行では利用できません
- aContainerFolder
- その他の関係のないもの
- MyName.ソフトウェア
- MyName.Software.sln
- ソリューションに含まれる関連プロジェクトのその他のさまざまな MyName.Software.{Purpose} フォルダー
- MyName.Software.Web
- その他のさまざまなフォルダーとサブフォルダー
- wwwroot <-- これらのファイルは、ビルド/実行とパブリッシュの両方で期待どおりに利用できます
- MyName.Software.Web.csproj ファイル
- MyName.Common.Domain
ここからどこへ
私が試したことと私が持っていた質問を並べていたとき、いくつかのことがうまくいきました。プロセスを愛し、プロセス前の髪を引っ張るのが嫌い. ここで自分の質問に答えましたが、後で参照できるようにこれを投稿して、他の誰かがいくつかの髪の毛を保つのに役立つかもしれません. また、これを行う他の方法がある場合は、それらを実行してください。代替案を検討することは常に良いことです。:0)
c# - 共有プロジェクトにすべてのフォルダー ファイルを含める
.NET Core プロジェクト形式の利点の 1 つは、*.csproj ファイルには、プロジェクトに含めるファイルのリストが含まれなくなり、そのフォルダー内のすべてが含まれるだけになることです。
ただし、共有プロジェクトには、プロジェクトに含めるファイルをリストする *.projitems ファイルがあるという意味で、古い .NET Framework プロジェクト形式がまだ残っています。
プロジェクトに新しいファイルを追加するたびに、そのファイルが *.projitems ファイルに追加され、ソース管理の競合が発生することがよくあります。
この *.projitems ファイルを無視して、.NET Core プロジェクトのようにすべてのファイルをプロジェクト フォルダーに含める方法はありますか?