簡體   English   中英

復制到csproj中的輸出目錄,具有傳遞依賴項

[英]Copy to output dir in csproj, with transitive dependencies

我有一個項目A和一個項目B。項目A對項目B有依賴性。B包含一個我想附加到A中的數據庫文件(.mdf)。

為此,我只需使用

<add name="myDB"
     connectionString="Data Source=(LocalDB)\mssqllocaldb;
             AttachDbFilename=|DataDirectory|\myDB.mdf;
             Database=some_alias_for_myDB;
             Integrated Security=True" />

然后,我構建項目A並啟動它,它成功使用了myDB 但是,我希望每次啟動項目A時 ,都要從myDB的新副本開始。 如果myDB.mdf是項目A的一部分,則只需將屬性Copy to Output Directory : Copy AlwaysmyDB.mdf 在以傳遞方式接收myDB.mdf的情況下,屬性Copy to Output Directory的值與項目A無關。

PS我也嘗試過在構建項目之前先進行構建前事件清理我的項目-不起作用,因為啟動項目A(未經修改)不會觸發構建,因此不進行清理。

基本上,這是數據文件的正常行為。 僅在構建項目時才將它們復制到目標文件夾,只有在源已更改的情況下才會發生。 您可以調整構建過程以強制每次構建,但這不是一個好的解決方案,並且在沒有任何更改的情況下不必要地增加了構建時間。

解決此問題的最簡單方法可能是在打開文件之前復制文件,以便在啟動時始終將其還原到原始狀態。 理想情況下,您甚至可以將其復制到用戶文件夾,因為一旦程序在用戶計算機上的調試器之外運行,如果您以讀寫模式打開bin文件夾中的文件,則會遇到問題(通常不允許該程序寫入“程序文件”目錄或其子文件夾)。

最后,我決定添加一個指向通用文件的鏈接。 所以在我的項目中,AI有一個相對鏈接../B/myDB.mdf imo並不是最佳解決方案,因為該項目現在引用了其域文件夾之外的內容,但是它似乎比自定義復制腳本更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM