我有一個類庫項目,其中包含一些內容文件配置了「複製如果較新」複製構建操作。這會導致文件被複制到解決方案中每個項目的...\bin\
下的文件夾中。在這個相同的解決方案中,我有一個ASP.NET web項目(順便說一下,這是MVC)。在庫中,我有一個靜態構造函數將文件加載到Web項目可訪問的數據結構中。以前,我一直將內容作爲嵌入式資源加入。我現在需要能夠替換它們而不用重新編譯。我想訪問在三個不同的上下文中的數據:ASP.NET - 訪問複製內容
- 單元測試庫組件
- 調試Web應用程序
- 託管在IIS
現場進行單元測試,Environment.CurrentDirectory
點包含複製內容的路徑。但是,在調試時,它指向C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE
。我也看過Assembly.GetExecutingAssembly().Location
,指向C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\c44f9da4\9238ccc\assembly\dl3\eb4c23b4\9bd39460_f7d4ca01\
。我需要的是webroot \bin
文件夾的物理位置,但由於我處於庫項目的靜態構造函數中,因此我無法訪問Request.PhysicalApplicationPath
。
是否有其他的環境變量或結構,我總是可以找到我的「複製如果是新的」文件?
真棒,這似乎是做伎倆。 – 2010-04-05 20:42:05